home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Resources / Backup, Restoration & File Management / SyncBack SE 5.1 / SyncBackSE_Setup.exe / {app} / MoveExpiredFiles.vbs < prev    next >
Text File  |  2007-11-21  |  3KB  |  80 lines

  1. ' MoveExpiredFiles by Dave Wilkins 2007
  2.  
  3. ' a utility to strip out files over (as shown) 1 month old from a file-set.
  4. ' This is to cater for the fact that SyncBackSE does not (at time of writing)
  5. ' have a facility For filtering by Months, only by secs, mins, hrs & days.
  6. ' Because there are a varying number of days in a month, using (say) 30 days
  7. ' in the filter is inaccurate for more than half the year
  8.  
  9. ' The script can be easily modified to handle 2 or 3 months (etc) by simply
  10. ' editing (or supplying) a different value of MonthBar
  11.  
  12. ' The idea is to run this script in Programs - Before of a profile
  13. ' which uses the script's Destination as its (the profile's) Source.
  14. ' The profile will then Zip the Moved files and transfer them to the
  15. ' "real" Destination, as set in profile.
  16. ' Thus, requires the use of an interim staging-area with sufficient space
  17.  
  18. ' Hard-code the Source and Dest (actually, staging-area)
  19.  
  20. SourcePath = "C:\TOPMOST FOLDER OF TARGET"
  21. DestPath = "X:\TEMPLOC" ' staging-area                 
  22. MonthBar = 1
  23.  
  24. ' OR, 
  25. ' Set objArgs = WScript.Arguments
  26. ' SourcePath = objArgs.Item(0)
  27. ' DestPath = objArgs.Item(1)
  28. ' MonthBar = objArgs.Item(2)
  29.  
  30. SourcePath = RTB(SourcePath) ' remove trailing backslashes, if any
  31. DestPath = RTB(DestPath) '     ditto
  32.  
  33. SourcePathLen = Len(SourcePath) 
  34.  
  35. Set FSO = CreateObject("Scripting.FileSystemObject") 
  36. Set Folders = FSO.GetFolder(SourcePath) 
  37.  
  38. DateToday = Now() 
  39.  
  40. Recurse Folders 
  41.  
  42. ' < = < = < = < = end of main logic / start of subroutines / functions = > = > = > = > 
  43.  
  44. Sub Recurse(ByRef Folders) 
  45.   
  46.     Set Subfolders = Folders.Subfolders 
  47.     Set Files = Folders.Files 
  48.  
  49.     FolderNameLen = Len(Folders.Path) 
  50.     DestFolderPath= DestPath & Right(Folders.Path, FolderNameLen - SourcePathLen) & "\" 
  51.  
  52.     For Each File In Files ' traverse every file in each (sub)folder 
  53.         If DateDiff("m", File.DateLastModified, DateToday) > MonthBar Then 
  54.             If Not FSO.FolderExists(DestFolderPath) Then FSO.CreateFolder DestFolderPath 
  55.             ' only create folders on Dest if there's something to put in them :-> 
  56.             ' and if it exists already (quite likely for files 2-n...), don't try and repeat
  57.             On Error Resume Next 
  58.             File.Move DestFolderPath
  59.         End If 
  60.     Next
  61.  
  62.     For Each Folder In Subfolders 
  63.         Recurse Folder 
  64.     Next  
  65.  
  66.     Set Subfolders = Nothing 
  67.     Set Files = Nothing 
  68.  
  69. End Sub
  70.  
  71. Function RTB(sPath) ' Remove Trailing Backslash from path in question
  72.  
  73.     Len_sPath = Len(sPath)
  74.     If Right(sPath, 1) = "\" Then    
  75.         sPath = Left(sPath, Len-sPath-1) 
  76.     End If
  77.     RTB = sPath
  78.  
  79. End Function
  80.